//================================= 编程题1 ==================================
//尝试1.0
//import java.util.Scanner;
//public class Main{
//    public static void main(String[] args){
//        Scanner s=new Scanner(System.in);
//        int N=s.nextInt();
//
//        //i<N<j，找到i,j并比较两者与的N差值
//        int i=0;int j=1;int k=0;
//        while(true){
//            if(N>j){
//                k=i+j;
//                i=j;
//                j=k;
//            }
//            else{
//                break;
//            }
//        }
//        int min=(N-i)<(j-N) ? (N-i):(j-N);
//        System.out.print(min);
//    }
//}



//尝试2.0
//import java.util.Scanner;
//public class Main{
//    public static void main(String[] args){
//        Scanner s=new Scanner(System.in);
//        int N=s.nextInt();
//
//        //i<N<j，找到i,j并比较两者与的N差值
//        int i=0;int j=1;int ret=0;
//        while(true){
//            if(N>j){
//                ret=i;
//                i=j;
//                j=ret+j;
//            }
//            else{
//                break;
//            }
//        }
//
//        System.out.print( (N-i)>(j-N) ? (j-N):(N-i) );
//    }
//}






//================================= 编程题2 =======================================
//尝试1.0 xxx
//import java.util.*;
//public class Main {
//    public boolean chkParenthesis(String A, int n) {
//        // write code here
//        if (n % 2 != 0) return false;
//
//        char[] arr = A.toCharArray();
//        Stack<Character> s = new Stack();
//        for (char i = 0; i < arr.length; i++) {
//            //？？？万一第一个就是右括号呢
//            if (arr[i] == '(') {
//                s.push(arr[i]);
//            } else if (s.isEmpty() && arr[i] == ')') {
//                s.push(arr[i]);
//            } else if (!s.isEmpty() && arr[i] == ')') {
//                s.pop();
//            } else return false;
//        }
//        if (s.isEmpty()) return true;
//        return false;
//    }
//
//    public static void main(String[] args) {
//        Main main=new Main();
//        System.out.println(main.chkParenthesis(")(",2));
//    }
//}


//尝试2.0
//？？？万一第一个就是右括号呢
import java.util.*;
public class Main {
    public boolean chkParenthesis(String A, int n) {
        if (n % 2 != 0) return false;

        char[] arr = A.toCharArray();
        Stack<Character> s = new Stack();
        for (char i = 0; i < arr.length; i++) {
            //碰到左括号，入栈
            if (arr[i] == '(') {
                s.push(arr[i]);
            }
            //碰到右括号
            if(arr[i]==')'){
                //如果此时栈为空，直接返回false
                if(s.empty()) return false;
                //栈不为空，出栈
                s.pop();
            }
        }
        if(s.isEmpty()) return true;
        return false;
    }

    public static void main(String[] args) {
        Main main=new Main();
        System.out.println(main.chkParenthesis("()))",4));
    }
}
